03. Welcome to the Java Programming Nanodegree Program

Java is one of the most popular programming languages, commonly used for developing server side applications. Unlike other programs currently on the market that teach Java, this Nanodegree will take someone with basic Java knowledge to apply advanced Java topics that can be leveraged in software development. At the end of this program, you will have a portfolio of projects that demonstrate your ability to build a Java application from scratch and also deploy it into production.

# Welcome to the Java Programming Nanodegree Program!

How will you benefit from this Nanodegree program?

This Nanodegree will equip learners with foundational skills in the Java programming language in order to be a career-ready Java Developer. This program will be the prequel to Udacity’s Java Web Developer Nanodegree and requires students to have previous programming experience in a specific language, most likely other than Java. It will teach students fundamental skills related to Java programming such as the basic Java syntax, conditional statements, functions, loops, and collections as well as more advanced Java programming techniques such as streams, lambdas, and object serialization. Students will exit the program with knowledge on how and when to utilize the tools within Java to build and deploy a robust web application.

What you will learn

A graduate of this program will be able to:
Apply basic features of Java programming language (data types, variables, conditional statements, loops, methods) to develop applications
Use IntelliJ IDE to develop and troubleshoot Java applications
Design and create classes and class methods in a Java application
Apply interfaces, inheritance, and polymorphism in Java applications
Apply Java best practices (design patterns, designing classes, defining methods, etc.) to develop and design Java applications
Select and use Collections (lists, maps, sets, etc.) to organize and process data
Use basic features of functional programming (lambdas, streams, Optional) to process data in Java applications
Apply common Java types (strings, enums, Java.IO, etc.) to manipulate data within a Java application
Implement errors handling logic using exceptions
Apply advanced concepts (reflection, class loading, etc.) to implement advanced Java applications
Automate build and continuous integration process using Maven
Develop unit tests using JUnit and Mockito to ensure code is consistently functional

What the program offers

Throughout the program, you will work with:

Interactive lesson content
Exercises
Hands-on projects where you will apply and practice your new skills.
Professional review of your project by our project reviewers who will provide personalized feedback on how you can improve your work.

These projects will serve as a portfolio you can use to demonstrate your skills. After you complete the program, you will be ready to bring these crucial Java skills to your current role as a developer.

Almost every role that involves software development in today’s workforce, particularly at large technology companies, will require working with Java and we are excited to support you in this step in your career.

We are excited and honored that you are taking this step in your journey with us!